0x01 寻找漏洞
1 | 题目考察的是:rand()生成的随机数和随机种子seed()有关,通过观察题目,可以发现存在溢出漏洞,通过输入可以覆盖到seed(),实现一个可预测的随机数列。 |
1 | buf覆盖0x40位就能覆盖到seed |
1 | sub_A20()如下,就是比较你输入的数是否和产生的随机数相等 |
1 | 当回答正确50次时,会执行sub_B28这个函数,读取flag。 |
0x02 思路分析
1 | 所以我们要做的就是,将seed覆盖掉,并且去预测生成的随机数。 |
exp
1 | from pwn import * |